Microservices Architecture - Why Do We Use Queues And Asynchronous Messaging